//变量作用域

#include <iostream>
using namespace std;

int a = 5;//
int main()
{
	std::cout << "变量: " << a << std::endl;
	int a = 10;
	std::cout << "变量: " << a << std::endl;

	{

		std::cout << "变量: " << a << std::endl;
		int a = 20;  // 块作用域变量
		std::cout << "变量: " << a << std::endl;
	}

	std::cout << "变量: " << a << std::endl;

	a = 100;

	//假设下面这行我们取消注释，会有变量重定义错误，同一作用域不能定义两个同名的变量！
	// int a = 123;

	std::cout << "变量: " << a << std::endl;

	{

		std::cout << "变量: " << a << std::endl;
		int a = 30;  // 块作用域变量
		std::cout << "变量: " << a << std::endl;
	}
	return 0;
}
